# the minimum version of CMake.
# 指定CMake的最低版本为3.5.0
cmake_minimum_required(VERSION 3.5.0)
# 定义项目名称为NativeCplusDemo
project(NativeCplusDemo)

# 设置一个变量NATIVERENDER_ROOT_PATH，其值为当前CMakeLists.txt所在的目录路径
set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR})

# 判断是否定义了PACKAGE_FIND_FILE变量。这个变量通常用于包管理，比如通过find_package命令时可能会定义
# 如果定义了，则执行下一行
if(DEFINED PACKAGE_FIND_FILE)
    # 包含PACKAGE_FIND_FILE变量指定的CMake文件。这可能是用于配置一些包相关的设置
    include(${PACKAGE_FIND_FILE})
endif()

# 添加头文件搜索路径。这里将当前源目录和其下的include目录添加到编译器的头文件搜索路径中
include_directories(${NATIVERENDER_ROOT_PATH}
                    ${NATIVERENDER_ROOT_PATH}/include)

# 添加一个共享库（动态库）目标，名为entry，源文件为napi_init.cpp，最终生成的动态库为libentry.so，lib为前缀、.so为后缀
add_library(entry SHARED types/libentry/napi_init.cpp)
# 将目标库entry与libace_napi.z.so库进行链接。PUBLIC表示这个链接关系会传递给依赖entry的目标
target_link_libraries(entry PUBLIC libace_napi.z.so)

# 构建第二个共享库：libmy.so（自定义库）
#add_library(my SHARED types/libmy/my_native.cpp)
#target_link_libraries(my PUBLIC libace_napi.z.so)

# 第二种方式构建第二个共享库，添加第二个共享库所在目录，自动加载目录下的CMakeLists.txt
add_subdirectory(types/libmy)
add_subdirectory(types/libcallback)